import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useUserStore } from '@/stores/userStore'
import router from '@/router'

const httpInstance = axios.create({
    baseURL:'http://pcapi-xiaotuxian-front-devtest.itheima.net',
    timeout:15000
})
// axios请求拦截器
httpInstance.interceptors.request.use(config => {
  const userStore = useUserStore()
  const token = userStore.userInfo.token
  if(token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, e => Promise.reject(e))

// axios响应式拦截器
httpInstance.interceptors.response.use(res => res.data, e => {
  // token过期
  if(e?.response?.status === 401) {
    // 清空用户数据
    useUserStore().clearUserInfo()
    // 跳转到登录页
    router.push('/login')
    ElMessage.warning('登录信息已过期，请重新登录')
    return Promise.reject(e)
  }
  ElMessage.warning(e.response?.data?.message)
  return Promise.reject(e)
})

export default httpInstance
